package com.nuoniu.sibanyun.service.erp;

import com.baomidou.mybatisplus.extension.service.IService;
import com.nuoniu.sibanyun.entity.SysCompany;
import com.nuoniu.sibanyun.entity.dto.ErpAccountEditDto;
import com.nuoniu.sibanyun.entity.erp.ErpAccount;
import com.nuoniu.sibanyun.entity.erp.ErpPeriod;
import com.nuoniu.sibanyun.entity.vo.ErpAccountVo;

import java.time.LocalDate;
import java.util.List;

/**
 * <p>
 * 账套信息 服务类
 * </p>
 *
 * @author baiqiang
 * @since 2020-09-22
 */
public interface IErpAccountService extends IService<ErpAccount> {

    /**
     * 获取当前未被 结算的账套ID
     * @return
     */
    Integer getCurrentAccountId();
    /**
     * 获取账套信息
     * @return
     */
    List<ErpAccountVo> listErpAccount();
    /**
     * 新增 账套
     * @param erpAccount
     */
    void addErpAccount(ErpAccount erpAccount);

    /**
     * 编辑 账套
     * @param erpAccountEditDto
     */
    void editErpAccount(ErpAccountEditDto erpAccountEditDto);

    /**
     * 获取最新的 账套
     * @return
     */
    ErpAccount getLastErpAccount();

    /**
     * 更新 账套名称
     */
    void updateAccountName(SysCompany company);

    /**
     * 获取期间
     * @author 小啊刚
     * @date 2022-01-03
     */
    ErpPeriod getPeriod(LocalDate voucherDate);

    /**
     * 初始化账套
     * @author 小啊刚
     * @date 2022-05-27
     */
    void initErpAccount(Long companyId, String companyName);
}
